// package com.example.freemaker_demo;
//
// import com.example.freemaker_demo.entity.TemplateEntity;
// import com.example.freemaker_demo.executer.FreemakerExecuter;
// import lombok.extern.slf4j.Slf4j;
// import org.apache.commons.cli.*;
// import org.springframework.boot.CommandLineRunner;
// import org.springframework.boot.SpringApplication;
// import org.springframework.boot.autoconfigure.SpringBootApplication;
// import org.yaml.snakeyaml.Yaml;
//
// import java.io.FileInputStream;
// import java.io.FileNotFoundException;
//
// @SpringBootApplication
// @Slf4j
// public class FreemakerDemoApplication implements CommandLineRunner {
//
//     public static void main(String[] args) {
//         SpringApplication.run(FreemakerDemoApplication.class, args);
//     }
//
//     @Override
//     public void run(String... args) throws Exception {
//         initCliArgs(args);
// //        Configuration cfg = SpringContextHolder.getBean(Configuration.class);
// //        Template template = cfg.getTemplate("test.ftl");
// //
// //        HashMap<String, String> objectObjectHashMap = new HashMap<>();
// //        objectObjectHashMap.put("key", "hello world");
// //        String s = FreeMarkerTemplateUtils.processTemplateIntoString(template, objectObjectHashMap);
// //        System.out.println(s);
//
//     }
//
//     private void initCliArgs(String[] args) {
//         CommandLineParser parser = new DefaultParser();
//
//         Options options = new Options();
//         options.addOption(Option.builder("c")
//                 .longOpt("config-file")
//                 .hasArg()
//                 .argName("config-file")
//                 .desc("配置文件")
//                 .build());
//
//         try {
//             CommandLine cmd = parser.parse(options, args);
//             System.out.println(cmd.getOptionValue("c"));
//             FileInputStream yamlFile = new FileInputStream(cmd.getOptionValue("c"));
//             TemplateEntity templateEntity = parseYaml(yamlFile);
//
//             FreemakerExecuter.executeAll(templateEntity);
//
//             System.out.println("生成成功!");
//
//         } catch (ParseException e) {
//             new HelpFormatter().printHelp("java -jar env_tpl.jar [OPTIONS]", options);
//             log.error("命令行解析失败");
//             e.printStackTrace();
//         } catch (FileNotFoundException e) {
//             e.printStackTrace();
//         }
//
//     }
//
//     private TemplateEntity parseYaml(FileInputStream yamlFile) {
//         Yaml yaml = new Yaml();
//         return yaml.loadAs(yamlFile, TemplateEntity.class);
//     }
// }
